import os
import sys

def unir_patterns(secuencia_path, carpeta_patterns='.', salida='output.vtp'):
    try:
        # Leer archivo de secuencia
        with open(secuencia_path, 'r') as f:
            orden = [line.strip() for line in f if line.strip().isdigit()]
        
        resultado = []

        for numero in orden:
            nombre_archivo = os.path.join(carpeta_patterns, f"Pattern {numero}.vtp")
            if not os.path.isfile(nombre_archivo):
                print(f"[ADVERTENCIA] No se encontró: {nombre_archivo}")
                continue

            with open(nombre_archivo, 'r', encoding='utf-8', errors='ignore') as f:
                lineas = f.readlines()
                resultado.extend(lineas[2:])  # Omitir las dos primeras líneas

        # Guardar archivo combinado
        with open(salida, 'w', encoding='utf-8') as f:
            f.writelines(resultado)

        print(f"[✔] Archivo generado: {salida}")

    except Exception as e:
        print(f"[ERROR] {e}")


if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Uso: python unir_patterns.py secuencia.txt [carpeta_de_patterns] [archivo_salida]")
    else:
        secuencia = sys.argv[1]
        carpeta = sys.argv[2] if len(sys.argv) > 2 else '.'
        salida = sys.argv[3] if len(sys.argv) > 3 else 'output.vtp'
        unir_patterns(secuencia, carpeta, salida)
